/*******************************************************************************
 *    版权信息   ： @copyright Copyright 2014-2021 chnenergy All Right Reserved
 *    作   者   ： hhz
 *    版   本   ： 1.1
 *    创建时间   ：2024/4/13
 *    最后修改日期   ： 2024/4/13
 *    最后修改人员   ： hhz
 ******************************************************************************/
package io.github.houhanzhi.hhregistry.service;

import io.github.houhanzhi.hhregistry.cluster.Snapshort;
import io.github.houhanzhi.hhregistry.model.InstanceMeta;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * Interface for registry service
 **/
public interface RegistryService {

    InstanceMeta register(String service, InstanceMeta instance);

    InstanceMeta unregister(String service, InstanceMeta instance);

    List<InstanceMeta> getAllInstances(String service);

    // TODO 添加一些高级功能

    // 刷新服务状态：一个实例上可能提供多个服务
    long renew(InstanceMeta instance, String... services);

    // 获取当前服务版本
    Long version(String service);

    // 如果一个服务上，提供了多个服务提供者，那么可以获取所有服务提供者的版本集合
    Map<String, Long> versions(String... services);


}
